package org.jeecg.modules.land.entity;

import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 无形资产-土地使用权明细
 * @Author: jeecg-boot
 * @Date:   2025-03-27
 * @Version: V1.0
 */
@Data
@TableName("tb_asset_management")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="tb_asset_management对象", description="无形资产-土地使用权明细")
public class TbAssetManagement implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
	/**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
	/**企业名称*/
	@Excel(name = "企业名称", width = 60)
    @ApiModelProperty(value = "企业名称")
    private String companyName;
    @Excel(name = "企业编码", width = 20)
    @ApiModelProperty(value = "企业编码")
    private String code;
	/**企业级次*/
	@Excel(name = "企业级次", width = 15)
    @ApiModelProperty(value = "企业级次")
    private String companyLevel;
	/**资产名称*/
	@Excel(name = "资产名称", width = 15)
    @ApiModelProperty(value = "资产名称")
    private String assetName;
	/**坐落位置*/
	@Excel(name = "坐落位置", width = 15)
    @ApiModelProperty(value = "坐落位置")
    private String location;
	/**取得时间*/
	@Excel(name = "取得时间", width = 15)
    @ApiModelProperty(value = "取得时间")
    private String getTime;
	/**取得方式*/
	@Excel(name = "取得方式", width = 15)
    @ApiModelProperty(value = "取得方式")
    private String getMethod;
	/**资产属性*/
	@Excel(name = "资产属性", width = 15)
    @ApiModelProperty(value = "资产属性")
    private String assetProperty;
	/**用途*/
	@Excel(name = "用途", width = 15)
    @ApiModelProperty(value = "用途")
    private String useMethod;
	/**使用状态*/
	@Excel(name = "使用状态", width = 15)
    @ApiModelProperty(value = "使用状态")
    private String useStatus;
	/**资产状态*/
	@Excel(name = "资产状态", width = 15)
    @ApiModelProperty(value = "资产状态")
    private String assetStatus;
	/**账面数-面积*/
	@Excel(name = "账面数-面积", width = 20, numFormat = "0.00")
    @ApiModelProperty(value = "账面数-面积")
    private java.math.BigDecimal bookArea;
	/**账面数-原值*/
	@Excel(name = "账面数-原值", width = 20, numFormat = "0.00")
    @ApiModelProperty(value = "账面数-原值")
    private java.math.BigDecimal bookOriginalValue;
	/**账面数-净值*/
	@Excel(name = "账面数-净值", width = 20, numFormat = "0.00")
    @ApiModelProperty(value = "账面数-净值")
    private java.math.BigDecimal bookNetValue;
	/**证件类型*/
	@Excel(name = "证件类型", width = 15)
    @ApiModelProperty(value = "证件类型")
    private String cardType;
	/**有证面积*/
	@Excel(name = "有证面积", width = 20, numFormat = "0.00")
    @ApiModelProperty(value = "有证面积")
    private java.math.BigDecimal cardArea;
	/**无证面积*/
	@Excel(name = "无证面积", width = 20, numFormat = "0.00")
    @ApiModelProperty(value = "无证面积")
    private java.math.BigDecimal noCardArea;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;

    // 深拷贝方法
    public TbAssetManagement deepCopy() {
        return new TbAssetManagement()
                .setId(this.id)
                .setCreateBy(this.createBy)
                .setCreateTime(this.createTime != null ? new Date(this.createTime.getTime()) : null)
                .setUpdateBy(this.updateBy)
                .setUpdateTime(this.updateTime != null ? new Date(this.updateTime.getTime()) : null)
                .setSysOrgCode(this.sysOrgCode)
                .setCompanyName(this.companyName)
                .setCode(this.code)
                .setCompanyLevel(this.companyLevel)
                .setAssetName(this.assetName)
                .setLocation(this.location)
                .setGetTime(this.getTime)
                .setGetMethod(this.getMethod)
                .setAssetProperty(this.assetProperty)
                .setUseMethod(this.useMethod)
                .setUseStatus(this.useStatus)
                .setAssetStatus(this.assetStatus)
                .setBookArea(this.bookArea)
                .setBookOriginalValue(this.bookOriginalValue)
                .setBookNetValue(this.bookNetValue)
                .setCardType(this.cardType)
                .setCardArea(this.cardArea)
                .setNoCardArea(this.noCardArea)
                .setRemark(this.remark);
    }
}
